

package com.coding4play.mqtt.common.repository;

import com.coding4play.mqtt.common.entity.message.SubMessage;

import java.util.List;

/**
 * 订阅存储服务接口
 * <p>
 * 保存topic被哪些客户端订阅
 * 保存客户端订阅了哪些topic
 */
public interface ISubMessageRepository {

    /**
     * 存储订阅
     */
    void put(String topicFilter, SubMessage subMessage);

    /**
     * 删除订阅
     */
    void delete(String topicFilter, String clientId);

    /**
     * 删除clientId的订阅
     */
    void delete(String clientId);

    /**
     * 获取订阅存储集
     */
    List<SubMessage> search(String topicFilter);
}
